#ifndef WINDOWIMP_HPP
#define WINDOWIMP_HPP

// This guard ensures that X11 implementation is used only
// on unix platform.
#ifndef MY_USE_UNIX

    #error Unix version of __FILE__ is used without MY_USE_UNIX defined.

#endif

#include <stdint.h>
#include <string>
#include <X11/X.h>
#include <X11/Xlib.h>

#include "Pattern/Uncopyable.hpp"

namespace My
{
    class WindowImp : private Uncopyable
    {
    public:
        static void Initialize();

    protected:
        WindowImp(const std::string& title, uint32_t width = 480, uint32_t height = 320);
        ~WindowImp();

    private:
        Window m_Handle;
    };
}

#endif // WINDOWIMP_HPP
